@@ -2,12 +2,14 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from __future__ import division  | 
            
| 4 | 4 | 
                 | 
            
| 5 | 
                +import json  | 
            |
| 5 | 6 | 
                import os  | 
            
| 6 | 7 | 
                 | 
            
| 7 | 8 | 
                import shortuuid  | 
            
| 8 | 9 | 
                from curtail_uuid import CurtailUUID  | 
            
| 9 | 10 | 
                from django.conf import settings  | 
            
| 10 | 11 | 
                from django.core.files.storage import default_storage  | 
            
| 12 | 
                +from django.core.serializers.json import DjangoJSONEncoder  | 
            |
| 11 | 13 | 
                from logit import logit  | 
            
| 12 | 14 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 13 | 15 | 
                 | 
            
                @@ -16,7 +18,7 @@ from group.models import GroupInfo, GroupUserInfo  | 
            ||
| 16 | 18 | 
                from utils.error.errno_utils import GroupStatusCode, UserStatusCode  | 
            
| 17 | 19 | 
                from utils.error.response_utils import response  | 
            
| 18 | 20 | 
                from utils.redis.rgroup import get_group_info, get_group_users_info, set_group_info, set_group_users_info  | 
            
| 19 | 
                -from utils.redis.rkeys import TOUR_GUIDE_GROUP_CUR_SESSION  | 
            |
| 21 | 
                +from utils.redis.rkeys import TOUR_GUIDE_GROUP_CUR_GATHER_INFO, TOUR_GUIDE_GROUP_CUR_SESSION  | 
            |
| 20 | 22 | 
                from utils.redis.rtourguide import set_tour_guide_own_group  | 
            
| 21 | 23 | 
                 | 
            
| 22 | 24 | 
                 | 
            
                @@ -240,6 +242,10 @@ def tg_group_gather_start_api(request):  | 
            ||
| 240 | 242 | 
                set_group_info(group)  | 
            
| 241 | 243 | 
                 | 
            
| 242 | 244 | 
                # 更新Session  | 
            
| 243 | 
                - r.set(TOUR_GUIDE_GROUP_CUR_SESSION, shortuuid.uuid())  | 
            |
| 245 | 
                +    r.pipeline().set(TOUR_GUIDE_GROUP_CUR_SESSION % group_id, shortuuid.uuid()).set(TOUR_GUIDE_GROUP_CUR_GATHER_INFO % group_id, json.dumps({
               | 
            |
| 246 | 
                + 'gather_at': gather_at,  | 
            |
| 247 | 
                + 'gather_lon': gather_lon,  | 
            |
| 248 | 
                + 'gather_lat': gather_lat,  | 
            |
| 249 | 
                + }, cls=DjangoJSONEncoder)).execute()  | 
            |
| 244 | 250 | 
                 | 
            
| 245 | 251 | 
                return response(200, u'Set Tour Guide Group Gather Info Success', u'设置旅行团集合信息成功')  | 
            
                @@ -15,8 +15,8 @@ from utils.error.response_utils import response  | 
            ||
| 15 | 15 | 
                from utils.group_photo_utils import get_current_photos  | 
            
| 16 | 16 | 
                from utils.redis.rgroup import get_group_info, get_group_users_info, set_group_users_info  | 
            
| 17 | 17 | 
                from utils.redis.rkeys import (GROUP_LAST_PHOTO_PK, GROUP_USERS_DELETED_SET, GROUP_USERS_PASSED_SET,  | 
            
| 18 | 
                - GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET, TOUR_GUIDE_GROUP_CUR_SESSION,  | 
            |
| 19 | 
                - TOUR_GUIDE_GROUP_GEO_INFO, TOUR_GUIDE_GROUP_USER_GEO_LIST)  | 
            |
| 18 | 
                + GROUP_USERS_QUIT_SET, GROUP_USERS_REFUSED_SET, TOUR_GUIDE_GROUP_CUR_GATHER_INFO,  | 
            |
| 19 | 
                + TOUR_GUIDE_GROUP_CUR_SESSION, TOUR_GUIDE_GROUP_GEO_INFO, TOUR_GUIDE_GROUP_USER_GEO_LIST)  | 
            |
| 20 | 20 | 
                from utils.redis.rtourguide import get_tour_guide_own_group  | 
            
| 21 | 21 | 
                 | 
            
| 22 | 22 | 
                 | 
            
                @@ -152,9 +152,12 @@ def tgu_group_user_locations_api(request):  | 
            ||
| 152 | 152 | 
                if not GroupUserInfo.objects.filter(group_id=group_id, user_id=admin_id, subadmin=True, status=True).exists():  | 
            
| 153 | 153 | 
                return response(GroupStatusCode.NO_LOCATION_PERMISSION)  | 
            
| 154 | 154 | 
                 | 
            
| 155 | 
                + # 获取集合经纬度  | 
            |
| 156 | 
                +    gather_info = json.loads(r.get(TOUR_GUIDE_GROUP_CUR_GATHER_INFO % group_id) or '{}')
               | 
            |
| 157 | 
                +  | 
            |
| 155 | 158 | 
                     return response(200, 'Get Tour Guide Group All User Location Success', u'获取旅行团用户地理位置信息成功', {
               | 
            
| 156 | 159 | 
                'group_id': group_id,  | 
            
| 157 | 
                - 'locations': r.georadius(TOUR_GUIDE_GROUP_GEO_INFO % group_id, 0, 0, '+inf', unit='m', withdist=True, withcoord=True, sort='ASC')  | 
            |
| 160 | 
                +        'locations': r.georadius(TOUR_GUIDE_GROUP_GEO_INFO % group_id, gather_info.get('gather_lon', 0), gather_info.get('gather_lat', 0), '+inf', unit='m', withdist=True, withcoord=True, sort='ASC')
               | 
            |
| 158 | 161 | 
                # 'locations': [['x', 0.33, (2.68220901489e-06, 1.26736058093e-06)]]  | 
            
| 159 | 162 | 
                })  | 
            
| 160 | 163 | 
                 | 
            
                @@ -9,6 +9,7 @@ PROFILE_INFO = 'profile:info:%s' # STRING,用户信息,user_id  | 
            ||
| 9 | 9 | 
                # 导游相关  | 
            
| 10 | 10 | 
                TOUR_GUIDE_GROUP_GEO_INFO = 'tour:guide:group:geo:info:%s' # ZSET,旅游团地理位置信息,group_id  | 
            
| 11 | 11 | 
                TOUR_GUIDE_GROUP_CUR_SESSION = 'tour:guide:group:cur:session:%s' # STRING,旅游团当前Session,group_id,导游设置集合时间的时候更新  | 
            
| 12 | 
                +TOUR_GUIDE_GROUP_CUR_GATHER_INFO = 'tour:guide:group:cur:gather:info:%s' # STRING,旅游团当前Session,group_id,导游设置集合时间的时候更新  | 
            |
| 12 | 13 | 
                TOUR_GUIDE_GROUP_USER_GEO_LIST = 'tour:guide:group:user:geo:list:%s:%s:%s' # LIST,旅游团当前用户地理位置列表,group_id、session_id、user_id  | 
            
| 13 | 14 | 
                 | 
            
| 14 | 15 | 
                TOUR_GUIDE_GROUP_USER_OWN = 'tour:guide:group:user:own:%s' # STRING,导游当前拥有的旅行团,user_id,导游创建旅行团的时候更新  |